package com.exchange.constant;

import java.math.BigDecimal;

/**
 * 业务级常量
 *
 * @author DENGLONG
 * @version 1.0
 * @create 2019-05-11 11:52 AM
 **/
public interface BizConst {

	int MOBILE = 1;
	int EMAIL = 1;
	
	
    /**
     * 默认有效状态
     */
    String BIZ_STATUS_VALID = "VALID";

    String BIZ_STATUS_FAILED = "FAILED";
    /**
     * 默认无效状态
     */
    String BIZ_STATUS_EXPIRY = "EXPIRY";

    /**
     * 注册短信
     */
    String SMS_TYPE_REGISTER = "register";
    /**
     * 修改密码短信
     */
    String SMS_TYPE_CIPHER = "cipher";
    /**
     * 修改资金密码短信
     */
    String SMS_TYPE_PAY_CIPHER = "payCipher";
    /**
     * 绑定邮箱电话短信
     */
    String SMS_TYPE_BINGDING = "bindingCipher";

    /**
     * 购买短信
     */
    String SMS_TYPE_WITHDRAW = "withdraw";

    /**
     * 购买短信
     */
    String SMS_TYPE_ORDER_FINISH = "otcfinish";

    /**
     * 出售短信
     */
    String SMS_TYPE_DEPOSIT = "deposit";

    /**
     * 提币
     */
    String SMS_TYPE_EXTRACT = "extract";

    /**
     * 添加收款地址
     */
    String SMS_TYPE_ADDRESS = "address";


    

    String BIZ_MAS_DATA = "data";

    /**
     * 默认休眠时间
     */
    Long DEFAULT_SLEEP_TIME = 400L;

    String TOKEN_VALIDATOR = "BTC";

    interface UserConst {

        /**
         * 谷歌二步 抬头
         */
        String GOOGLE_TITLE = "Sobit";

        /**
         * 用户未填写上级
         */
        Integer USER_NO_PARENT = 0;

    }

    interface EditorConst {

        String UPLOAD_CONFIG = "config";
    }

    interface TradeConst{

        /**
         * 订单类型 委托
         */
        String ORDER_TYPE_PENDING = "PENDING";
        /**
         * 订单类型 完成
         */
        String ORDER_TYPE_FINISH = "FINISH";
        /**
         * 订单类型 撤单
         */
        String ORDER_TYPE_CANCEL = "CANCEL";

        /**
         * 订单类型 撤单
         */
        String ORDER_TYPE_CANCEL_DATE = "cancelDate";

        /**
         * 订单类型 撤单中
         */
        String ORDER_TYPE_CANCELING = "CANCELING";
        /**
         * 交易类型 买入
         */
        String TRADE_TYPE_INPUTS_EN = "BUY";

        /**
         * 交易类型 卖出
         */
        String TRADE_TYPE_OUTS_EN = "SELL";

        /**
         * 默认长度
         */
        int BIGDECIMAL_MAX_LENGTH = 8;
        /**
         * 默认手续费
         */
        BigDecimal FINAL_FEERATE = new BigDecimal(0.001);

        
    }

    /**
     * 订单常量
     */
    interface OrderConst {
        /**
         * 盘口 买卖数据 长度
         */
        Integer DEFAULT_HANDICAP_LENGTH = 5;

        /**
         * 盘口 交易历史 长度
         */
        Integer DEFAULT_HISTORY_LENGTH = 50;
    }


    interface AssetsConst{

        //入账
        String ASSETS_FLOW_TYPE_INPUTS = "INPUTS";
        //出账
        String ASSETS_FLOW_TYPE_OUTS = "OUTS";
        //转账
        String ASSETS_FLOW_TYPE_TRANSFER = "TRANSFER";
        //场外币购买价格配置
        String PARAM_BASE_COIN_BUY_PRICE = "BASE_COIN_BUY_PRICE";
        //场外币出售价格配置
        String PARAM_BASE_COIN_SELL_PRICE = "BASE_COIN_SELL_PRICE";

        //奖励
        String ASSETS_FLOW_TYPE_BONUS = "BONUS";


        //注册奖励
        String ASSETS_FLOW_TYPE_GENBONUS = "GENBONUS";
        //场外币购买时间限制
        String PARAM_OTC_BUY_TIME = "OTC_BUY_TIME";
        //场外币出售时间限制
        String PARAM_OTC_SELL_TIME = "OTC_SELL_TIME";
        //场外币购买时间限制
        String PARAM_REGISTER_BONUS = "REGISTER_BONUS";
        //场外币出售时间限制
        String PARAM_REGISTER_PARENT_BONUS = "REGISTER_PARENT_BONUS";

        //场外交易vcode
        String QUERY_VCODE = "vCode";
        /**
         * 未支付
         */
        String STATUS_UNPAY = "UNPAY";

        /**
         * 申请
         */
        String STATUS_APPLY = "APPLY";

        /**
         * 预审
         */
        String STATUS_PRETRIAL = "PRETRIAL";

        /**
         * 初审
         */
        String STATUS_FIRST = "FIRST";

        /**
         * 复审
         */
        String STATUS_REVIEW = "REVIEW";

        /**
         * 终审
         */
        String STATUS_FINAL = "FINAL";

        /**
         * 审核完成
         */
        String STATUS_COMPLETE = "COMPLETE";

        /**
         * 退回状态
         */
        String STATUS_BACK = "BACK";

        /**
         * 取消
         */
        String STATUS_CANCEL = "CANCEL";
    }

    /**
     * 文章 常量
     */
    interface ArticleConst {

        /**
         * 标记状态
         */
        String STATUS_COMPILE = "COMPILE";


        /**
         * 上架
         */
        String STATUS_PUBLISH = "PUBLISH";
    }

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    /** 我的 **/
    /**
     * 加密后缀
     */
    String BIZ_SECRET_CODE = "72&62%￥##";
    
    
    /**
     * kyc
     */
    interface KycConst {
    	//无效状态
        Integer INVALID = 0;
        // k1 提交审核
        Integer K1_SUB = 1;
        //k1审核不通过
        Integer K1_NO = 2;
        //k1 审核通过
        Integer K1_OK = 3;
        //k2提交审核
        Integer K2_SUB = 4;
        //k2 审核不通过
        Integer K2_NO = 5;
        //k2审核通过
        Integer K2_OK = 6;
    }
    /**
     * 钱包
     */
    interface WalletConst {
        // 钱包类型 -- 币币账户
        String WALLET_TYPE_TRADE = "TRADE";
        // 钱包类型 -- OTC账户
        String WALLET_TYPE_OTC = "OTC";
        // 流水类型:1.币币交易增加的
        int TRADE_ADD = 1;
        // 流水类型:2币币交易减少的
        int TRADE_SUB = 2;
        // 流水类型:3.otc交易增加的
        int OTC_ADD = 3;
        // 流水类型:4.otc交易减少的
        int OTC_SUB = 4;
        // 流水类型:5.充币
        int RECHARGE = 5;
        // 流水类型:6.提币;
        int EXTRACT = 6;
        // 流水类型:7.不同类型钱包划转
        int TRANSFER = 7;
        // 流水类型:8.钱包内不同币种兑换增加的
        int CONVERSION_ADD = 8;
        // 流水类型:9.钱包内不同币种兑换减少的
        int CONVERSION_SUB = 9;
        // 流水类型:10.交易所到理财
        int exchangeToManage = 10;
        // 流水类型:11.理财到交易所
        int ManageToExchange = 11;
    }
    /**
     * 商户
     */
    interface MerchantConst{
        //无效(取消)
        Integer STATE_INVALID = 0;
        //状态--申请
        Integer STATE_APPLY = 1;
        //通过
        Integer STATE_COMPLETE = 2;
        //拒绝（驳回）
        Integer STATR_REFUSE = 3;
    }
    /**
     * 商户信任
     */
    interface TrustConst {
    	//添加一条记录
    	Integer EVENT_ADD = 1;
    	//删除一条记录
    	Integer EVENT_DEL = 2;
    	//修改一条记录
    	Integer EVENT_UP = 3;
    	
        //类型 -- 信任
    	Integer TYPE_TRUST = 1;
        //类型 -- 屏蔽
    	Integer TYPE_SHIELD = 2;
        //类型 -- 举报
    	Integer TYPE_ACCUSATION = 3;
    }
    /**
     * 支付方式
     */
    interface PayTapy {
    	//银联
    	String BANKPAY = "bankPay";
    	//webPay=微信
        String WEPAY = "wePay";
        //支付宝
        String ALIPAY = "aliPay";
        //PayPal
        String PAYPAL = "payPal";
    }
    /**
     * otc广告
     */
    interface OtcAdvert {
    	//逻辑删除
    	Integer dele = 0;
    	//有效,上架
    	Integer valid = 1;
    	//下架
    	Integer DISMOUNT = 2;
    	//中国货币简称
        String CNY = "CNY";
        //美国货币简称
        String USD = "USD";
        //广告配置
        String ADVERT_LIMIT_CONFIG = "advertLimitUp";
        //广告手续费配置信息
        String ADVERT_FEE = "advertFee";
        //添加广告
    	Integer EVENT_ADD = 1;
    	//逻辑删除广告
    	Integer EVENT_DEL = 2;
    	//修改广告
    	Integer EVENT_UP = 3;
    }
    /**
     * otc订单
     */
    interface OtcOrder {
    	//逻辑删除,无效
    	Integer dele = 0;
    	//待付款
    	Integer APPLY = 1;
    	//取消
    	Integer cancel = 2;
    	//已付款
    	Integer PAYED = 3;
        //已放币
    	Integer ADOPT = 4;
    	//已评论
        Integer COMMENT = 5;
      
        // 评论 -- 不满意
        Integer NSATISFY = 1;
        //评论 -- 一般
        Integer COMMONLY = 2;
        //评论 -- 满意
        Integer SATISFY = 3;
    	
    	// 默认每个用户允许未支付订单的数量
    	String DEFAULT_OTC_ORDER_APPLY = "defaultOtcOrderApply";
    	
    	//订单申诉类型 -- 卖家长时间未释放
    	Integer APPEAL_NO_RELEASE = 1;
    	//订单申诉类型 -- 订单金额不对
    	Integer APPEAL_AMOUNT_ERROR = 2;
    	//订单申诉类型 -- 系统异常
    	Integer APPEAL_ERROR = 3;
    	//订单申诉类型 -- 其他
    	Integer APPEAL_OTHER_ERROR = 4;
    	
    	//申诉状态 -- 等待审核
    	Integer APPEAL_AWAIT = 1;
    	//申诉状态 -- 已审核
    	Integer APPEAL_ALREADY = 2;
    	
    }
    
    /**
     * websocket
     */
    interface socket {
    	//k线订阅
    	Integer TOPIC_KLINE = 1;
    	//买卖盘盘口订阅
    	Integer TOPIC_HANDICAP = 2;
    	//委托变化订阅
//    	Integer TOPIC_ENTRUST = 3;
    	//请求K线历史
    	Integer REQ_KLINE_HISTORY = 4;
    	//心跳
    	Integer PANT = 5;
    	
    	//k线订阅
    	Integer UN_TOPIC_KLINE = 6;
    	//买卖盘盘口订阅
    	Integer UN_TOPIC_HANDICAP = 7;
    	//委托变化订阅
//    	Integer UN_TOPIC_ENTRUST = 8;
    	
    	//业务类型 -- 聊天
    	Integer BUSTYPE_TEXT = 9;
    	
    	
    	
    	//前端收到的类型
    	//行情
    	Integer HNAG_QING = 10;
    	//委托
    	Integer ENTRUST = 13;
    	//盘口
    	Integer HANDICAP = 12;
    	
    	//k线
    	Integer KLINE = 11;
    	//k线历史
    	Integer KLINE_HISTORY = 14;
    	
    }
    
    /**
     * 汇率
     */
    interface rate {
    	String coinbaseApi = "coinbaseApi";
    	
    }
    
}
